This invention relates to transmitting data over a network, and more particularly to eliminating network jitter of the transmitted data.
There are many applications where it is required to send digital data over a packetized network (e.g. the Internet) with a certain guaranteed Quality of Service (QoS). These QoS applications are composed of, but not limited to, Voice Over the Internet Protocol (VoIP), Video Conferencing, Video Monitoring/Control (eg. remote manipulation), Video Surveillance, Tele-Medicine, and Streaming/Broadcast Video. In these applications, it is critical that the packetized digital data be sent with certain network-related quality guarantees with regards to parameters such as: bandwidth allocation; latency; jitter; sequencing (i.e. ordering); and data loss.
To the extent that these network-related quality parameters cannot be controlled by the operation/utilization of the network, either the success of the application is rendered useless or an additional burden is placed on the transmitting and receiving networked gateways.
In particular, random queuing delays at nodes in a packetized network add jitter to transported data. For the case of streaming video applications, network jitter cannot always be controlled to an acceptable level. Hence, to mitigate the effects of jitter, the network interface device on the receiving side of a network link (or receiving gateway) typically utilizes some form of buffering of the received data before sending it out at the desired rate to the receiving media player.
The buffering, though adding additional latency to the received signal, provides the possibility of xe2x80x9csmoothing outxe2x80x9d the random rate of receipt of data packets over the network (due to jitter). The video stream data can then be sent out to the receiving media player at a fairly constant rate.
Use of this buffering mechanism introduces an additional problem. How does the receiving network gateway know at what rate to play back the streaming video data? That is, the goal of the receiving network gateway is to output the video data at exactly the same rate that the transmitting network gateway received the video data. Typically, the allowable tolerance between the receiving video rate and the play-out video rate is quite small (on the order of nanoseconds for MPEG2 video streams). Any difference in these two rates will cause the buffer to either overflow or underflow and stall the video output. Furthermore, dynamic adjustments in the play-out video rate may re-introduce unacceptable levels of jitter into the play-out video stream. For broadcast applications, broadcasters generally abide by the European Telecommunications Standards Institute (ETSI) ETR-290 Standard that specifies that such jitter must be kept below 500 ns. Thus, an accurate estimate of the video rate is essential for both filtering out jitter.
Producing an accurate video play-out rate also helps minimize the size of the jitter buffer to only that needed to mask network jitter. Minimizing the buffer size, in turn, minimizes the resulting added latencyxe2x80x94a critical parameter in applications involving feedback such as Video Conferencing and Remote Manipulation.
In essence, the transmitting and receiving network gateway""s goal is to render the intermediate network as being completely transparent to the application.
The matching of the input/output video rates to such tight tolerances generally requires the synchronization of the network gateways. This can be done in a number of ways. Among them are: time synchronization and FIFO metering.
Time Synchronization:
One way is to have both the transmitting and receiving gateway devices operate with exactly the same clock. This requires sending a synchronization (i.e. time sync) signal from the transmitting gateway device to the receiving gateway device. The receiving gateway device can then use the time sync signal to adjust its local oscillator to match that of the transmitting gateway device.
A problem arises with this approach in that the time sync signal is generally sent over the same network, and experiences the same network jitter, that the steaming video is sent. The time sync signal can thus be delayed by random (unknown) amounts (as much as 500 msec in some cases). This delay can cause serious problems with attempting to synchronize networked gateway devices. An approach (minimum delay filtering) is presented later in this report that has been found to effectively eliminate the influence of network jitter when using time synchronization.
FIFO Metering:
Another, yet novel way of synchronizing networked gateway devices is to encode in the data packets sent to the receiving network gateway the video play-out rate at the transmitting network gateway device. This is typically done by periodically embedding in the video stream a time stamp prior to packetization and transmission over the network.
Assuming a constant bit-rate for the video stream, the receiving network gateway device can then read the timestamps and, by counting the number of packets received between timestamps, can calculate the rate (in Mbps) at which the transmitting gateway sent the video stream. The receiving network gateway can therefore play out the video data at the calculated rate.
This method works fairly well. However, the calculated rates are not exact and can be in error due to lack of knowledge of the true frequencies of the up-stream time-stamper and the receiving gateway""s local oscillator. In particular, the play-out rate based on a remote oscillator must translate into a rate using a local oscillator that may not be at exactly the same frequency as the up-stream oscillator. The errors can be large enough such that the required tolerance on video playback rate is exceeded. Another issue is that even if the exact rates could be known, they are subject to a slowly varying drift, mainly due to temperature changes of the oscillators. Hence, some form of error correction is still needed.
A way to correct for this error is to periodically measure the buffer (i.e. FIFO) depth of the receiving gateway device. By this means, a residual accumulation rate of data in the buffer can be determined. The output rate can then be adjusted such that the accumulation rate is driven to zero and thus effectively accomplish synchronization of the networked gateway devices. This method is commonly known as FIFO metering.
However, as in the previous approach, the network jitter introduces a random variability in the buffer depth measurements. Unless properly dealt with, this random error can seriously affect how well the networked gateway""s can be synchronized. In all cases, a jitter filtering mechanism must be employed in order to properly calculate, synchronize, and track the true video play-out rate.
The effect of network jitter upon the quality of service operation of networked gateway devices is minimized with the use of minimum delay filtering prior to the control/synchronization processing by the xe2x80x9coff-rampxe2x80x9d networked gateway device.